BROKER_URL = 'redis://127.0.0.1:6379/1'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/2'


# TODO 导入Celery 任务
CELERY_IMPORTS = (
    'day02.apps.task01',
    'day02.apps.task02'
)

"""Celery常用配置"""

# 时区的设置，默认UTC
CELERY_TIMEZONE = 'Asia/Shanghai'

# 是否使用系统本地时区
CELERY_ENABLE_UTC = False

# 配置重写任何任务属性
# 最大调用 10次/秒
CELERY_TASK_ANNOTATIONS = {
    'day02.apps.task01': {'rate_limit': '10/s'},
    'day02.apps.task02': {'rate_limit': '10/s'}
}

# 是否重试发布任务消息，默认True
CELERY_TASK_PUBLISH_RETRY = True

# 并发的worker(消费者)数量根据cpu决定
CELERYD_CONCURRENCY = 4

# 每次去redis取任务的数量，默认：4
CELERYD_PREFETCH_MULTIPLIER = 4

# 每个worker执行了多少次任务后就会死掉
CELERYD_MAX_TASKS_PER_CHILD = 10

# 单个任务的最大运行时间，例：1分钟
CELERYD_TASK_TIME_LIMIT = 60

# celery任务执行结果的超时时间，例：3分钟
CELERY_TASK_RESULT_EXPIRES = 180